﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Chapter23
{
    using Examples;
    using Exercises;

    class Program
    {
        static void Main(string[] args)
        {
            #region 01 第1个 LINQ 查询
            /*
             * 01 用 var 关键字声明结果变量
             * 02 指定数据源：from 子句
             * 03 指定条件：where 子句
             * 04 选择元素：select 子句
             * 05 完成：使用 foreach 循环
             * 06 延迟执行的查询
             * */
            Code01.BeginEx01();
            #endregion

            #region 02 使用 LINQ 方法语法
            /*
             * 01 LINQ 扩展方法
             * 02 查询语法和方法语法
             * */
            Code02.BeginEx02();
            #endregion

            #region 03 排序查询结果
            Code03.BeginEx03();
            #endregion

            #region 04 orderby 子句
            Code04.Begin();
            #endregion

            #region 05 用方法语法排序
            Code05.BeginEx04();
            #endregion

            #region 06 查询大型数据集
            Code06.BeginEx05();
            #endregion

            #region 07 聚合运算符
            Code07.BeginEx06();
            #endregion

            #region 08 查询复杂的对象
            Code08.BeginEx07();
            #endregion

            #region 09 投影：在查询中创建新对象
            Code09.BeginEx08();
            #endregion

            #region 10 投影：方法语法
            Code10.Begin();
            #endregion

            #region 11 单值选择查询
            Code11.Begin();
            #endregion

            #region 12 Any() 和 All() 方法
            Code12.BeginEx10();
            #endregion

            #region 13 多级排序
            Code13.BeginEx11();
            #endregion

            #region 14 多级排序方法语法：ThenBy
            Code14.Begin();
            #endregion

            #region 15 组合查询
            Code15.BeginEx12();
            #endregion

            #region 16 Tak() 和 Skip() 方法
            Code16.BeginEx13();
            #endregion

            #region 17 First() 和 FirstOrDefaule() 方法
            Code17.BeginEx14();
            #endregion

            #region 18 LINQ 集运算符
            Code18.BeginEx15();
            #endregion

            #region 19 Join 查询
            Code19.BeginEx16();
            #endregion

            #region 20 小结
            #endregion

            #region 21 练习
            Exercise01.Begin();
            Exercise02.Begin();
            Exercise03.Begin();
            Exercise04.Begin();
            Exercise05.Begin();
            Exercise06.Begin();
            Exercise07.Begin();
            #endregion

            #region 22 要章要点
            #endregion
        }
    }
}
